# 使用matplotlib绘制折线图
# 导入matplotlib模块
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import FancyArrowPatch
# 准备x,y轴的数据
x = np.linspace(-10, 10, 101)
y = x ** 2

# 设置图表的背景颜色
plt.figure(facecolor='lightgray')

plt.rcParams['font.sans-serif'] = ['SimHei']  # 更改为宋体
plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题
# 绘制折线图
plt.plot(x, y, label="y = x ** 2")
# plt.plot(x, y, color='green', marker='o',
#          linestyle='dashed', linewidth=2,
#          markersize=20)


plt.title('平方数折线图')  # 添加标题
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.legend()  # 显示图例
# 显示图形
plt.grid(True)

# 设置y轴位置为居中
ax = plt.gca()  # 获取当前的Axes对象
ax.spines['left'].set_position(('data', 0))  # 将左轴移动到数据0处
ax.spines['right'].set_color('none')  # 隐藏右轴
ax.spines['top'].set_color('none')  # 隐藏上轴

# 在x轴和y轴的末尾添加箭头
arrow_x = FancyArrowPatch((min(x), 0), (max(x), 0), arrowstyle='->', mutation_scale=20)
arrow_y = FancyArrowPatch((0, min(y)), (0, max(y)), arrowstyle='->', mutation_scale=20)
ax.add_patch(arrow_x)
ax.add_patch(arrow_y)

plt.show()